export interface User {
  id: number
  username: string
  email: string
  phone: string
  status: number
  created_at: string
  updated_at: string
  roles: Role[]
}

export interface Role {
  id: number
  name: string
  description: string
  created_at: string
  updated_at: string
  permissions: Permission[]
}

export interface Permission {
  id: number
  name: string
  code: string
  description: string
  type: number
  parent_id: number
  path: string
  method: string
  created_at: string
  updated_at: string
}

export interface LoginRequest {
  username: string
  password: string
}

export interface LoginResponse {
  token: string
  user: User
}

export interface PaginationParams {
  page: number
  pageSize: number
}

export interface PaginationResponse<T> {
  data: T[]
  total: number
  page: number
  size: number
}